/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.cpal.entrenamiento.controller;

import com.cpal.entrenamiento.entity.Categoria;
import com.cpal.entrenamiento.entity.Ejercicio;
import com.cpal.entrenamiento.entity.Plantilla;
import com.cpal.entrenamiento.service.IEjercicioService;
import com.cpal.entrenamiento.service.IElaborarMaterialService;
import java.util.List;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.Executions;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.select.SelectorComposer;
import org.zkoss.zk.ui.select.annotation.Listen;
import org.zkoss.zk.ui.select.annotation.VariableResolver;
import org.zkoss.zk.ui.select.annotation.Wire;
import org.zkoss.zk.ui.select.annotation.WireVariable;
import org.zkoss.zul.Checkbox;
import org.zkoss.zul.Combobox;
import org.zkoss.zul.Comboitem;
import org.zkoss.zul.Image;
import org.zkoss.zul.ListModelList;
import org.zkoss.zul.Messagebox;
import org.zkoss.zul.Textbox;
import org.zkoss.zul.Window;

/**
 *
 * @author ARCENIO
 */
@VariableResolver(org.zkoss.zkplus.spring.DelegatingVariableResolver.class)
public class ActualizarEjercicioViewController extends SelectorComposer<Component> {

    @Wire
    Combobox cmbPlantilla;
    @Wire
    Combobox cmbDificultad;
    @Wire
    Textbox txtCodigo;
    @Wire
    Textbox txtOperacion;
    @Wire
    Textbox txtDescripcion;
    @Wire
    Textbox txtEnunciado;
    @Wire
    Checkbox chkVoz;
    @Wire
    Image image;
    @Wire
    Image image2;
    @Wire
    Image image3;
    @Wire
    Image image4;
    @Wire
    Image image5;
    @Wire
    Image image6;
    @Wire
    Image image7;
    @Wire
    Image image8;
    @WireVariable
    IElaborarMaterialService elaborarMaterialService;
    @WireVariable
    IEjercicioService ejercicioService;
    String codigo = null;
    String srcImage = null;
    String plantilla = null;
    String dificultad = null;
    String descripcion = null;
    String enunciado = null;
    String idImagen = null;
    String srcImagen1 = null;
    String srcImagen2 = null;
    String srcImagen3 = null;
    String srcImagen4 = null;
    String srcImagen5 = null;
    String srcImagen6 = null;
    String srcImagen7 = null;
    String srcImagen8 = null;
    String operacion = null;
    Ejercicio ejercicio = null;
    Ejercicio ejercicioNuevo = new Ejercicio();

    @Override
    public void doAfterCompose(Component comp) throws Exception {
        super.doAfterCompose(comp); //To change body of generated methods, choose Tools | Templates.

        codigo = Executions.getCurrent().getParameter("codigo");
        srcImage = Executions.getCurrent().getParameter("imagen");
        idImagen = Executions.getCurrent().getParameter("idImagen");
        operacion = Executions.getCurrent().getParameter("operacion");
        txtOperacion.setValue(operacion);        
        plantilla = Executions.getCurrent().getParameter("plantilla");
        dificultad = Executions.getCurrent().getParameter("dificultad");
        descripcion = Executions.getCurrent().getParameter("descripcion");
        enunciado = Executions.getCurrent().getParameter("enunciado");

        srcImagen1 = Executions.getCurrent().getParameter("srcImagen1");
        srcImagen2 = Executions.getCurrent().getParameter("srcImagen2");
        srcImagen3 = Executions.getCurrent().getParameter("srcImagen3");
        srcImagen4 = Executions.getCurrent().getParameter("srcImagen4");
        srcImagen5 = Executions.getCurrent().getParameter("srcImagen5");
        srcImagen6 = Executions.getCurrent().getParameter("srcImagen6");
        srcImagen7 = Executions.getCurrent().getParameter("srcImagen7");
        srcImagen8 = Executions.getCurrent().getParameter("srcImagen8");
        System.out.println(operacion);    
        if (!operacion.equals("REGISTRAR")) {
            System.out.println("Modificar");
            if (codigo != null) {
                if (!codigo.equals("")) {
                    System.out.println("codigo en el otro controlador: " + codigo);
                    ejercicio = new Ejercicio();
                    ejercicio.setCodigo(Integer.valueOf(codigo));
                    ejercicio = ejercicioService.obtenerEjercicio(ejercicio);

                    System.out.println("imagen: ");
                    ejercicio.getRimaColumna().getPalabraA1().getImagen();

                    txtCodigo.setValue(String.valueOf(ejercicio.getCodigo()));
                    txtDescripcion.setValue(ejercicio.getDescripcion());
                    System.out.println("combo: " + cmbDificultad.getAttribute(ejercicio.getDificultad()));

                    //cmbDificultad.setValue(ejercicio.getDificultad());
                    List<Comboitem> lst = cmbDificultad.getItems();
                    for (Comboitem cmb : lst) {
                        System.out.println("lst: " + cmb.getValue() + "/" + cmb.getLabel());
                        if (cmb.getValue().equals(ejercicio.getDificultad())) {
                            cmbDificultad.setValue(cmb.getLabel());
                        }

                    }
                }

            }

        } else {
            System.out.println("Registrar");

            if (plantilla != null) {
                System.out.println("Pnatilla: "+plantilla);
                cmbPlantilla.setValue(plantilla);
//                List<Comboitem> lst = cmbPlantilla.getItems();
//                System.out.println("lstPlantilla size: "+lst.size());
//                for (Comboitem cmb : lst) {
//                    System.out.println("lstPlantilla: " + cmb.getValue() + "/" + cmb.getLabel());
//                    if (cmb.getLabel().equals(plantilla)) {
//                        cmbPlantilla.setValue(cmb.getLabel());
//                    }
//
//                }
            }

            if (dificultad != null) {
                System.out.println("Dificultad: "+dificultad);
                List<Comboitem> lst = cmbDificultad.getItems();
                for (Comboitem cmb : lst) {
                    System.out.println("lstDificultad: " + cmb.getValue() + "/" + cmb.getLabel());
                    if (cmb.getLabel().equals(dificultad)) {
                        cmbDificultad.setValue(cmb.getLabel());
                    }

                }
            }

            if (codigo != null) {
                txtCodigo.setValue(codigo);
            }
           if (descripcion != null) {
                txtDescripcion.setValue(descripcion);
            }
           if (enunciado != null) {
                txtEnunciado.setValue(enunciado);
            }

        }

        srcImage = srcImage == null ? "/imgs/red_x.jpg" : srcImage;
        if (idImagen != null) {
            if (idImagen.equals("image")) {
                image.setSrc(srcImage);
                image2.setSrc(srcImagen2);
                image3.setSrc(srcImagen3);
                image4.setSrc(srcImagen4);
                image5.setSrc(srcImagen5);
                image6.setSrc(srcImagen6);
                image7.setSrc(srcImagen7);
                image8.setSrc(srcImagen8);
            } else if (idImagen.equals("image2")) {
                image2.setSrc(srcImage);
                image.setSrc(srcImagen1);
                image3.setSrc(srcImagen3);
                image4.setSrc(srcImagen4);
                image5.setSrc(srcImagen5);
                image6.setSrc(srcImagen6);
                image7.setSrc(srcImagen7);
                image8.setSrc(srcImagen8);
            } else if (idImagen.equals("image3")) {
                image3.setSrc(srcImage);
                image2.setSrc(srcImagen2);
                image.setSrc(srcImagen1);
                image4.setSrc(srcImagen4);
                image5.setSrc(srcImagen5);
                image6.setSrc(srcImagen6);
                image7.setSrc(srcImagen7);
                image8.setSrc(srcImagen8);
            } else if (idImagen.equals("image4")) {
                image4.setSrc(srcImage);
                image3.setSrc(srcImagen3);
                image2.setSrc(srcImagen2);
                image.setSrc(srcImagen1);
                image5.setSrc(srcImagen5);
                image6.setSrc(srcImagen6);
                image7.setSrc(srcImagen7);
                image8.setSrc(srcImagen8);

            } else if (idImagen.equals("image5")) {
                image5.setSrc(srcImage);
                image4.setSrc(srcImagen4);
                image3.setSrc(srcImagen3);
                image2.setSrc(srcImagen2);
                image.setSrc(srcImagen1);
                image6.setSrc(srcImagen6);
                image7.setSrc(srcImagen7);
                image8.setSrc(srcImagen8);
            } else if (idImagen.equals("image6")) {
                image6.setSrc(srcImage);
                image5.setSrc(srcImagen5);
                image4.setSrc(srcImagen4);
                image3.setSrc(srcImagen3);
                image2.setSrc(srcImagen2);
                image.setSrc(srcImagen1);
                image7.setSrc(srcImagen7);
                image8.setSrc(srcImagen8);

            } else if (idImagen.equals("image7")) {
                image7.setSrc(srcImage);
                image6.setSrc(srcImagen6);
                image5.setSrc(srcImagen5);
                image4.setSrc(srcImagen4);
                image3.setSrc(srcImagen3);
                image2.setSrc(srcImagen2);
                image.setSrc(srcImagen1);
                image8.setSrc(srcImagen8);
            } else {

                image8.setSrc(srcImage);
                image7.setSrc(srcImagen7);
                image6.setSrc(srcImagen6);
                image5.setSrc(srcImagen5);
                image4.setSrc(srcImagen4);
                image3.setSrc(srcImagen3);
                image2.setSrc(srcImagen2);
                image.setSrc(srcImagen1);
            }
        }

        ListModelList<Plantilla> plantillaModel = new ListModelList<Plantilla>(elaborarMaterialService.obtenerPlantilla());
        cmbPlantilla.setModel(plantillaModel);

    }

    @Listen("onClick = #btnSalir")
    public void goToActualizarEjercicio() throws Exception {
        String paginaActual = "actualizarEjercicioCF.zul";
        Executions.getCurrent().sendRedirect(paginaActual);

    }

    @Listen("onClick = #btnGrabar")
    public void grabarEjercicio() throws Exception {

        try {
            ejercicioNuevo.setCodigo(Integer.valueOf(1));
            ejercicioNuevo = ejercicioService.obtenerEjercicio(ejercicioNuevo);
            Plantilla plantilla = new Plantilla();
            plantilla.setCodigo(1);
            ejercicioNuevo.setPlantilla(plantilla);
            String dificultad = cmbDificultad.getValue();
            
            if(dificultad.equalsIgnoreCase("Alto")){
                dificultad="A";
            }else if(dificultad.equalsIgnoreCase("Medio")){
                dificultad="M";
            }else{
                dificultad="B";
            }
            ejercicioNuevo.setDificultad(dificultad);
            ejercicioNuevo.setDescripcion(txtDescripcion.getValue());
            ejercicioNuevo.getRimaColumna().setDescripcion(txtDescripcion.getValue());
            ejercicioNuevo.setEnunciado(txtEnunciado.getValue());
            ejercicioNuevo.setFondoPantalla("/fondo.jpg");
            ejercicioNuevo.getRimaColumna().setEstado("A");
            ejercicioNuevo.getRimaColumna().getPalabraA1().setImagen(srcImagen1);
            ejercicioNuevo.getRimaColumna().getPalabraA2().setImagen(srcImagen2);
            ejercicioNuevo.getRimaColumna().getPalabraA3().setImagen(srcImagen3);
            ejercicioNuevo.getRimaColumna().getPalabraA4().setImagen(srcImagen4);
            ejercicioNuevo.getRimaColumna().getPalabraB1().setImagen(srcImagen5);
            ejercicioNuevo.getRimaColumna().getPalabraB2().setImagen(srcImagen6);
            ejercicioNuevo.getRimaColumna().getPalabraB3().setImagen(srcImagen7);
            ejercicioNuevo.getRimaColumna().getPalabraB4().setImagen(srcImagen8);
            ejercicioNuevo.setAplicarVoz(chkVoz.isChecked() == true ? "1" : "0");

            Messagebox.show("Está seguro de guardar el ejercicio?", "Confirm Dialog", Messagebox.OK | Messagebox.IGNORE | Messagebox.CANCEL, Messagebox.QUESTION, new org.zkoss.zk.ui.event.EventListener() {
                public void onEvent(Event evt) throws InterruptedException, Exception {
                    if (evt.getName().equals("onOK")) {
                        ejercicioService.insertarEjercicio(ejercicioNuevo);
                        alert("Se guardó el ejercicio!");
                        goToActualizarEjercicio();
                    } else if (evt.getName().equals("onIgnore")) {
                        Messagebox.show("Proceso ignorado", "Warning", Messagebox.OK, Messagebox.EXCLAMATION);
                    } else {
                        alert("Proceso Cancelado !");
                    }
                }
            });
            System.out.println("testVisualizarEjercicio");

        } catch (Exception ex) {
            ex.printStackTrace();
        }

    }

}
